ALMaSS  1.0
The Animal, Landscape and Man Simulation System
Goose_Base.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************************************
3 Copyright (c) 2013, Christopher John Topping, University of Aarhus
4 All rights reserved.
5 
6 Redistribution and use in source and binary forms, with or without modification, are permitted provided
7 that the following conditions are met:
8 
9 Redistributions of source code must retain the above copyright notice, this list of conditions and the
10 following disclaimer.
11 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
12 the following disclaimer in the documentation and/or other materials provided with the distribution.
13 
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
15 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
17 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
18 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
19 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
21 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 ********************************************************************************************************
23 */
34 //---------------------------------------------------------------------------
35 
36 #ifndef Goose_BaseH
37 #define Goose_BaseH
38 //---------------------------------------------------------------------------
39 
40 //---------------------------------------------------------------------------
41 
42 class APoint;
43 class TAnimal;
44 class GooseMemoryMap;
45 class Goose_Base;
47 
48 //------------------------------------------------------------------------------
52 //typedef vector<Goose_Base*> TListOfGoose_Base;
53 //---------------------------------------------------------------------------
54 
58 typedef enum
59 {
66  gst_foobar
68 
69 
74 typedef enum
75 {
85 
90 typedef enum
91 {
98 
102 typedef enum
103 {
107  tolr_foobar
109 
114 {
115 public:
126 };
127 
131 class Goose_Base : public TAnimal
132 {
143 protected:
155  bool m_sex;
159  GooseSpecies m_myspecies;
175  double m_weight;
187  double m_BMR;
191  double m_DEB;
199  static double m_SnowDepth;
227  static double m_flightcost;
235  static double m_mingooseforagerate[ gs_foobar ];
239  static double m_GooseForageDist[gs_foobar];
243  static double m_GooseForageDistX2[gs_foobar];
247  static double m_GooseFieldForageDist[gs_foobar];
251  static double m_GooseFieldForageDistX2[gs_foobar];
255  static double m_GooseLeavingThreshold;
279  double m_BodyCondition[5];
303  static int m_followinglikelyhood[ (int)gst_foobar ];
312 
313 public:
317  Goose_Base(Landscape* p_L, Goose_Population_Manager* p_NPM, double a_weight, bool a_sex, APoint a_roost);
319  void Init(Goose_Population_Manager* p_NPM, double a_weight, bool a_sex, APoint a_roost);
321  void ReInit(Landscape* p_L, Goose_Population_Manager* p_NPM, double a_weight, bool a_sex, APoint a_roost);
325  virtual ~Goose_Base();
329  void st_Dying( void );
333  void Explore();
345  APoint GetRoost() { return m_MyRoost; }
350  return m_MaxIntakeSource;
351  }
355  virtual void ChangeRoost() { ; }
363  virtual APoint ChooseHopLoc() { return m_MyRoost; }
367  void EvaluateForageToHopLoc( APoint a_HopLoc );
371  virtual void StartDay(void);
375  virtual void BeginStep(void) { StartDay(); }
379  virtual void Step(void);
383  virtual void EndStep(void) {} // NB this is not used in the Goose_Base code
387  virtual void On_Emigrate()
388  {
390  }
398  void SetBodyCondition(double a_condition, unsigned a_index) { m_BodyCondition[a_index] = a_condition; }
402  void AddBodyCondition(double a_condition) { m_TheBodyCondition += a_condition; }
406  void SubtractBodyCondition( double a_condition) { m_TheBodyCondition -= a_condition; }
410  int GetGroupsize() { return m_groupsize; }
414  double ScaleForageToGroupsize(double a_forage) { return m_groupsize * a_forage; }
422  GooseSpecies GetSpecies() {
423  return m_myspecies;
424  }
428  bool GetSex() { return m_sex; }
434  }
439  return m_FlightNumber;
440  }
445  return m_FlightDistance;
446  }
451  return m_DEB;
452  }
457  return m_energyToday;
458  }
465  int GetForagingTime(int a_EndForagingTime, double a_RoostLeaveTime);
471  double GetGooseMinForageRate(GooseSpecies a_species)
472  {
473  return m_mingooseforagerate[a_species];
474  }
489  double GetMaxForageRate(double a_grain, double a_maize, double a_grass, double a_interferenceComp, bool a_iscereal, TTypesOfVegetation a_veg, bool a_stubble, TTypesOfVegetation a_prevcrop) {
490  double MaxRate = 0.0;
491  if (a_grain > MaxRate) {
492  MaxRate = a_grain;
494  }
495  else if (a_maize > MaxRate) {
496  MaxRate = a_maize;
498  }
499  else if (a_grass > MaxRate) {
500  MaxRate = a_grass;
502  }
503  else
504  {
505  MaxRate = 0;
507  }
508  MaxRate *= a_interferenceComp;
509  MaxRate = AdjustIntakeRateToSnowDepth(MaxRate);
510  m_MaxIntakeSource.m_iscereal = a_iscereal;
511  m_MaxIntakeSource.m_instubble = a_stubble;
512  m_MaxIntakeSource.m_veg = a_veg;
513  m_MaxIntakeSource.m_prevsowncrop = a_prevcrop;
514  /**** CJT DEBUG ****
515  if ((a_stubble) && (!a_iscereal) && (m_MaxIntakeSource.m_maxintakesource == tomis_grain))
516  {
517  g_msg->WarnAddInfo(WARN_BUG, "Day ", m_OurLandscape->SupplyDayInYear());
518  g_msg->WarnAddInfo(WARN_BUG, "Veg ", a_veg);
519  g_msg->WarnAddInfo(WARN_BUG, "Prev Crop ", a_prevcrop);
520  g_msg->WarnAddInfo(WARN_BUG, "Grain ", a_grain);
521  g_msg->WarnAddInfo(WARN_BUG, "******** ", 0);
522  }
523  //**** END ****/
524 
525 
526  return MaxRate;
527  }
528 
536  double GetMaxIntakeRate( double a_grain, double a_maize, double a_grass) {
537  double MaxRate = 0.0;
538  if (a_grain > MaxRate) {
539  MaxRate = a_grain;
540  }
541  if (a_maize > MaxRate) {
542  MaxRate = a_maize;
543  }
544  if (a_grass > MaxRate) {
545  MaxRate = a_grass;
546  }
547  return MaxRate;
548  }
552  void SetSex( bool a_sex ) {
553  m_sex = a_sex;
554  }
558  double GetTotalWeight() {return m_weightTotal;}
560  double GetRoostLeaveTime() { return m_LeaveRoostTime; }
564  void SetFlightCost(double a_cost) { m_flightcost = a_cost; }
568  double GetFlightCost() {
569  return m_flightcost * m_weightTotal;
570  }
574  void Set_mingooseforagerate(double a_cost, GooseSpecies a_species) { m_mingooseforagerate[a_species] = a_cost; }
578  void Set_Indivmingooseforagerate( double a_cost) {
579  m_Indivmingooseforagerate = a_cost;
580  }
584  void Set_GooseLeavingThreshold(double a_threshold) { m_GooseLeavingThreshold = a_threshold; }
588  void Set_GooseMaxAppetiteScaler(double a_cost) { m_GooseMaxAppetiteScaler = a_cost; }
596  void Set_GooseKJtoFatConversion(double a_cost) { m_GooseKJtoFatConversion = a_cost; }
600  void Set_GooseFattoKJConversion(double a_cost) { m_GooseFattoKJConversion = a_cost; }
604  void Set_GooseMinForageOpenness(double a_cost) { m_GooseMinForageOpenness = a_cost; }
608  void Set_GooseForageDist(double sp1, double sp2, double sp3)
609  {
610  //Dist
611  m_GooseForageDist[gs_Pinkfoot] = sp1;
612  m_GooseForageDist[gs_Barnacle] = sp2;
613  m_GooseForageDist[gs_Greylag] = sp3;
614  // DistX2
615  m_GooseForageDistX2[gs_Pinkfoot] = sp1 * 2.0;
616  m_GooseForageDistX2[gs_Barnacle] = sp2 * 2.0;
617  m_GooseForageDistX2[gs_Greylag] = sp3 * 2.0;
618  }
622  void Set_GooseFieldForageDist(double sp1, double sp2, double sp3)
623  {
624  //Dist
625  m_GooseFieldForageDist[gs_Pinkfoot] = sp1;
626  m_GooseFieldForageDist[gs_Barnacle] = sp2;
627  m_GooseFieldForageDist[gs_Greylag] = sp3;
628  // DistX2
629  m_GooseFieldForageDistX2[gs_Pinkfoot] = sp1 * 2.0;
630  m_GooseFieldForageDistX2[gs_Barnacle] = sp2 * 2.0;
631  m_GooseFieldForageDistX2[gs_Greylag] = sp3 * 2.0;
632  }
634  void Set_GooseFollowingLikelyhood( int a_likelyhood, GooseSpeciesType a_speciestype) { m_followinglikelyhood[a_speciestype] = a_likelyhood;}
636  void Set_GooseLeavingRoost( bool a_leaving) {m_LeavingRoost = a_leaving;}
640  void On_MoveTo(int a_x, int a_y ) { FlyTo( a_x, a_y); }
644  virtual void KillThis();
648  void On_Bang(int a_polyid );
652  void On_Bang(int a_polyid, double a_scare );
656  void On_Migrate(TTypeOfLeaveReason a_leavereason);
658  double AdjustIntakeRateToSnowDepth(double a_intakerate);
659 protected:
667  void FlyTo(int a_x, int a_y );
671  void FlyTo( APoint a_pt );
672  };
673 
674 #endif
GooseSpeciesType
Definition: Goose_Base.h:59
@ gst_GreylagFamilyGroup
Definition: Goose_Base.h:64
@ gst_BarnacleFamilyGroup
Definition: Goose_Base.h:62
@ gst_GreylagNonBreeder
Definition: Goose_Base.h:65
@ gst_PinkfootFamilyGroup
Definition: Goose_Base.h:60
@ gst_foobar
Definition: Goose_Base.h:66
@ gst_PinkfootNonBreeder
Definition: Goose_Base.h:61
@ gst_BarnacleNonBreeder
Definition: Goose_Base.h:63
TTypeOfGoose_BaseState
Definition: Goose_Base.h:75
@ togs_Roost
Definition: Goose_Base.h:80
@ togs_InitialState
Definition: Goose_Base.h:76
@ togs_ChooseForageLocation
Definition: Goose_Base.h:77
@ togs_Forage
Definition: Goose_Base.h:78
@ togs_ToRoost
Definition: Goose_Base.h:79
@ togs_foobar
Definition: Goose_Base.h:83
@ togs_Die
Definition: Goose_Base.h:81
@ togs_Emigrate
Definition: Goose_Base.h:82
TTypeOfMaxIntakeSource
Definition: Goose_Base.h:91
@ tomis_grass
Definition: Goose_Base.h:92
@ tomis_foobar
Definition: Goose_Base.h:96
@ tomis_sowncrop
Definition: Goose_Base.h:93
@ tomis_maize
Definition: Goose_Base.h:94
@ tomis_grain
Definition: Goose_Base.h:95
TTypeOfLeaveReason
Definition: Goose_Base.h:103
@ tolr_leanweight
Definition: Goose_Base.h:106
@ tolr_foobar
Definition: Goose_Base.h:107
@ tolr_bodycondition
Definition: Goose_Base.h:105
@ tolr_migration
Definition: Goose_Base.h:104
A simple class defining an x,y coordinate set.
Definition: ALMaSS_Setup.h:53
A class to describe the goose base.
Definition: Goose_Base.h:132
double m_Indivmingooseforagerate
The minimum tolerable forage rate in kJ/minute for the individual.
Definition: Goose_Base.h:231
int m_forageLocCount
The number of forage locations visited today.
Definition: Goose_Base.h:183
void SetFlightCost(double a_cost)
Set the flight cost per m per g.
Definition: Goose_Base.h:564
unsigned m_BodyConditionCounter
A counter for the daily body condition.
Definition: Goose_Base.h:287
TTypeOfGoose_BaseState st_ChooseForageLocation(void)
Selects a forage location based on past memory, or initiates an exploration.
Definition: Goose_Base.cpp:258
virtual void Step(void)
The Step is the second 'part' of the timestep that an animal can behave in. It is called continuously...
Definition: Goose_Base.cpp:244
double GetBodyCondition()
Returns the current body condition.
Definition: Goose_Base.h:394
void AddBodyCondition(double a_condition)
Alters body conditon by addition of a double value.
Definition: Goose_Base.h:402
GooseMemoryMap * m_MyMemory
The Goose Memory.
Definition: Goose_Base.h:299
int m_myMemPolyID
Temporary storage for a memory location polygon id.
Definition: Goose_Base.h:295
double GetDailyEnergyBudget()
Returns the daily energy budget.
Definition: Goose_Base.h:450
int GetFlightNumber()
Returns the total daily number of flights.
Definition: Goose_Base.h:438
static double m_GooseForageDistX2[gs_foobar]
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this...
Definition: Goose_Base.h:243
int GetForageLocIndex()
Gets for the forage location index.
Definition: Goose_Base.h:418
virtual void StartDay(void)
Do any 'housekeeping' associated with the start of day.
Definition: Goose_Base.cpp:181
void Init(Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Intitialise object.
Definition: Goose_Base.cpp:111
virtual void BeginStep(void)
The BeginStep is the first 'part' of the timestep that an animal can behave in. It is called once per...
Definition: Goose_Base.h:375
int GetMaxAppetiteHitTime()
Returns m_DailyMaxAppetiteHitTime.
Definition: Goose_Base.h:432
GooseSpeciesType m_myGooseSpeciesType
Holds the goose species type.
Definition: Goose_Base.h:163
static double m_GooseMaxAppetiteScaler
Scaler to determine the max kJ possible to eat per day based on non-energy reserve weight.
Definition: Goose_Base.h:259
static double m_SnowDepth
The current snow depth. Held here for speed optimization.
Definition: Goose_Base.h:199
TTypeOfGoose_BaseState CurrentGState
Variable to record current behavioural state.
Definition: Goose_Base.h:147
static double m_GooseKJtoFatConversion
Conversion rate kJ to fat.
Definition: Goose_Base.h:267
void Set_GooseMaxAppetiteScaler(double a_cost)
Set the goose appetite scale used to calculate max intake for all geese.
Definition: Goose_Base.h:588
double GetRoostLeaveTime()
Returns the time when the goose leaves the roost.
Definition: Goose_Base.h:560
static double m_GooseFieldForageDist[gs_foobar]
The maximum distance travelled from roost to forage sites for each species of goose (m)
Definition: Goose_Base.h:247
double ScaleForageToGroupsize(double a_forage)
Scales forage to groupsize.
Definition: Goose_Base.h:414
bool GetSex()
Returns the sex.
Definition: Goose_Base.h:428
void Set_GooseFollowingLikelyhood(int a_likelyhood, GooseSpeciesType a_speciestype)
Set the followinglikelyhood.
Definition: Goose_Base.h:634
int GetFlightDistance()
Returns the total daily distance flown.
Definition: Goose_Base.h:444
APoint GetRoost()
Supply roost coords.
Definition: Goose_Base.h:345
void On_Migrate(TTypeOfLeaveReason a_leavereason)
The goose is told to leave the simulation area (poss due to bad weather)
Definition: Goose_Base.cpp:722
int m_FlightNumber
Counter for the number of flights per day.
Definition: Goose_Base.h:307
static int m_followinglikelyhood[(int) gst_foobar]
An attribute used to determine the chance of following or exploring when foraging.
Definition: Goose_Base.h:303
double m_energyReserve
The bird's energy reserves in grams.
Definition: Goose_Base.h:223
virtual TTypeOfGoose_BaseState st_ToRoost()
Return to roost and assess whether to forage again that day.
Definition: Goose_Base.cpp:544
double m_BMR
The daily BMR.
Definition: Goose_Base.h:187
virtual void EndStep(void)
The EndStep is the third 'part' of the timestep that an animal can behave in. It is called once per t...
Definition: Goose_Base.h:383
void On_MoveTo(int a_x, int a_y)
The goose is moved to the location specified by a_x, a_y - caused by group decision.
Definition: Goose_Base.h:640
double m_BodyCondition[5]
A variable describing current body condition over the past 5 days.
Definition: Goose_Base.h:279
virtual APoint ChooseHopLoc()
Pick a hop location point within a_dist meters - must be overridden by descendent classes.
Definition: Goose_Base.h:363
double GetMaxForageRate(double a_grain, double a_maize, double a_grass, double a_interferenceComp, bool a_iscereal, TTypesOfVegetation a_veg, bool a_stubble, TTypesOfVegetation a_prevcrop)
Returns the max forage rate of the three different types of forage The max rate is adjusted according...
Definition: Goose_Base.h:489
void SubtractBodyCondition(double a_condition)
Alters body conditon by subtraction of a double value.
Definition: Goose_Base.h:406
int GetGroupsize()
Returns the groupsize.
Definition: Goose_Base.h:410
void Set_GooseFieldForageDist(double sp1, double sp2, double sp3)
Set the max forage distance from a field for all geese.
Definition: Goose_Base.h:622
TMaxIntakeSource m_MaxIntakeSource
Holds information about the food source which gave max intake rate.
Definition: Goose_Base.h:211
void Set_GooseLeavingRoost(bool a_leaving)
Set the flag to indicate if we are coming from the roost.
Definition: Goose_Base.h:636
int GetForagingTime(int a_EndForagingTime, double a_RoostLeaveTime)
Returns the time spent foraging.
Definition: Goose_Base.cpp:738
void Set_GooseMaxEnergyReserveProportion(double a_prop)
Set the maximum energy reserve proportion allowed for all geese.
Definition: Goose_Base.h:592
double m_TheBodyCondition
A variable describing current body condition averaged over 5 days.
Definition: Goose_Base.h:283
GooseSpecies GetSpecies()
Returns the species.
Definition: Goose_Base.h:422
void Set_Indivmingooseforagerate(double a_cost)
Set the mimimum tolerated forage rate for the individual goose.
Definition: Goose_Base.h:578
void Set_GooseKJtoFatConversion(double a_cost)
Set the kJ to fat conversion constant for all geese.
Definition: Goose_Base.h:596
GooseSpecies m_myspecies
Holds goose species.
Definition: Goose_Base.h:159
void Set_GooseLeavingThreshold(double a_threshold)
Set the body condition threshold for leaving for all geese.
Definition: Goose_Base.h:584
static double m_mingooseforagerate[gs_foobar]
The minimum tolerable forage rate in kJ/minute for the species.
Definition: Goose_Base.h:235
static double m_GooseFieldForageDistX2[gs_foobar]
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this...
Definition: Goose_Base.h:251
void Set_GooseMinForageOpenness(double a_cost)
Set the min forage openess for all geese.
Definition: Goose_Base.h:604
void FlyTo(int a_x, int a_y)
The goose flys to the location specified by a_x, a_y.
Definition: Goose_Base.cpp:409
double GetDailyEnergyExpenditure()
Returns the daily energy expenditure.
Definition: Goose_Base.h:456
double m_weightTotal
The weight of the bird in g including fat reserve.
Definition: Goose_Base.h:179
void st_Dying(void)
Behavioural state dying.
Definition: Goose_Base.cpp:251
void Explore()
Behavioural exploration of the area to find forage.
Definition: Goose_Base.cpp:571
TTypeOfGoose_BaseState st_Forage()
Behavioural forage.
Definition: Goose_Base.cpp:433
void SetSex(bool a_sex)
Sets the sex.
Definition: Goose_Base.h:552
APoint m_MyRoost
The current roost location.
Definition: Goose_Base.h:167
double m_energyToday
The bird's daily energy account (kJ)
Definition: Goose_Base.h:207
double m_weight
The weight of the bird in gram excluding fat reserve.
Definition: Goose_Base.h:175
void SetBodyCondition(double a_condition, unsigned a_index)
Sets the current body condition.
Definition: Goose_Base.h:398
Goose_Base(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Goose_Base constructor.
Definition: Goose_Base.cpp:163
double AdjustIntakeRateToSnowDepth(double a_intakerate)
When there is snow, the intake rate is decreased by 10 % per cm of snow.
Definition: Goose_Base.cpp:730
int m_FlightDistance
Storage for the total distance flown per day.
Definition: Goose_Base.h:311
void EvaluateForageToHopLoc(APoint a_HopLoc)
Do a forage evaluation from current location to a_HopLoc.
Definition: Goose_Base.cpp:593
static double m_flightcost
The cost of flight per g per m in kJ.
Definition: Goose_Base.h:227
static double m_GooseMinForageOpenness
The minimum openness value a goose will tolerate for forage.
Definition: Goose_Base.h:275
bool m_LeavingRoost
Flag to indicate that we are coming from the roost. Used to control code for "following".
Definition: Goose_Base.h:219
void ReInit(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
ReInit for object pool.
Definition: Goose_Base.cpp:168
void Set_mingooseforagerate(double a_cost, GooseSpecies a_species)
Set the mimimum tolerated forage rate for all geese.
Definition: Goose_Base.h:574
static double m_GooseForageDist[gs_foobar]
The maximum distance travelled from roost to forage sites for each species of goose (m)
Definition: Goose_Base.h:239
static double m_GooseMaxEnergyReserveProportion
Max proportion of weight that can be energy reserve.
Definition: Goose_Base.h:263
virtual ~Goose_Base()
Goose_Base destructor.
Definition: Goose_Base.cpp:176
int m_DailyMaxAppetiteHitTime
The time of day when m_DailyMaxAppetite was hit.
Definition: Goose_Base.h:203
virtual void KillThis()
The bird is dead of some external cause.
Definition: Goose_Base.cpp:703
double GetFlightCost()
Get the flight costs per m per g.
Definition: Goose_Base.h:568
double GetGooseMinForageRate(GooseSpecies a_species)
Returns the minimum forage rate for the species.
Definition: Goose_Base.h:471
TTypeOfGoose_BaseState st_Roost()
Roosting until next forage or next morning.
Definition: Goose_Base.cpp:550
double m_DEB
The daily energy budget excluding flying (kJ)
Definition: Goose_Base.h:191
static double m_GooseFattoKJConversion
Conversion rate fat to kJ.
Definition: Goose_Base.h:271
int m_myForageIndex
Temporary storage for a forage location index - this is a speed optimisation.
Definition: Goose_Base.h:291
bool m_sex
Sex of bird, true = male false = female.
Definition: Goose_Base.h:155
double GetTotalWeight()
Returns the weight of the bird.
Definition: Goose_Base.h:558
virtual void ChangeRoost()
Find the closest roost.
Definition: Goose_Base.h:355
void On_Bang(int a_polyid)
The goose is scared by a bang at location.
Definition: Goose_Base.cpp:638
void Set_GooseFattoKJConversion(double a_cost)
Set the fat to kJ conversion constant for all geese.
Definition: Goose_Base.h:600
static double m_GooseLeavingThreshold
The trigger for leaving as a 5 day average of body condition.
Definition: Goose_Base.h:255
TMaxIntakeSource GetMaxIntakeSource()
Supply the current max intake source.
Definition: Goose_Base.h:349
Goose_Population_Manager * m_OurPopulationManager
This is a time saving pointer to the correct population manager object.
Definition: Goose_Base.h:151
void Set_GooseForageDist(double sp1, double sp2, double sp3)
Set the max forage distance from roost for all geese.
Definition: Goose_Base.h:608
double GetMaxIntakeRate(double a_grain, double a_maize, double a_grass)
Returns the max intake rate of the three different types of intake.
Definition: Goose_Base.h:536
int m_groupsize
The size of the group this bird represents.
Definition: Goose_Base.h:171
double m_LeaveRoostTime
Controls the time when the goose will leave the roost.
Definition: Goose_Base.h:215
double m_DailyMaxAppetite
The daily max kJ possible to get as intake.
Definition: Goose_Base.h:195
virtual void On_Emigrate()
Cause the bird to immediately transition to Emigrate.
Definition: Goose_Base.h:387
The class to handle all goose population related matters.
Definition: Goose_Population_Manager.h:393
The class describing both local and seasonal goose memories and cognition.
Definition: GooseMemoryMap.h:94
The landscape class containing all environmental and topographical data.
Definition: landscape.h:113
The base class for all ALMaSS animal classes.
Definition: PopulationManager.h:205
Definition: Goose_Base.h:114
bool m_iscereal
Flag for whether the intake source is a cereal.
Definition: Goose_Base.h:119
bool m_instubble
Flag to indicate if the intake source was in stubble.
Definition: Goose_Base.h:123
TTypeOfMaxIntakeSource m_maxintakesource
The intake source which gave the maximum intake.
Definition: Goose_Base.h:117
TTypesOfVegetation m_veg
The vegetation type.
Definition: Goose_Base.h:121
TTypesOfVegetation m_prevsowncrop
The previous sown crop on the forage location.
Definition: Goose_Base.h:125
TTypesOfVegetation
Definition: tov_declaration.h:30